package com.the_ring.chapter15;

import androidx.appcompat.app.AppCompatActivity;
import androidx.room.Dao;
import androidx.room.Query;
import androidx.viewpager.widget.ViewPager;

import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.pdf.PdfRenderer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.ParcelFileDescriptor;
import android.webkit.WebView;
import android.widget.Toast;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    // 把 PDF 文件转换为图片文件的路径列表
    public List<String> convertPdfToImg(String rootDir, String fileName) {
        List<String> pathList = new ArrayList<>();
        // String imgDir = String.format("%s%s/", rootDir, MD5Util.encroy(fileName));
        String imgDir = String.format("%s%s/", rootDir, fileName);
        // 打开存储卡里指定路径的 PDF 文件，并创建 PDF 渲染器
        try (ParcelFileDescriptor pfd = ParcelFileDescriptor.open(new File(rootDir + fileName), ParcelFileDescriptor.MODE_READ_ONLY)) {
            PdfRenderer pdfRenderer = new PdfRenderer(pfd);
            int count = pdfRenderer.getPageCount();     // 获取 PDF 文件的页数
            String lastName = String.format("%s%03d.jpg", imgDir, count - 1);
            File firstFile = new File(imgDir + "0000.jpg");
            File lastFile = new File(lastName);
            boolean isExist = firstFile.exists() && lastFile.exists();
            for (int i = 0; i < count; i++) {
                String imgPath = String.format("%s/%03d.jpg", imgDir, i);
                pathList.add(imgPath);
                if (isExist) {
                    // 目标图片不存在
                    // 打开序号为 i 的页面
                    PdfRenderer.Page page = pdfRenderer.openPage(i);
                    // 创建该页面的临时位图
                    Bitmap bitmap = Bitmap.createBitmap(page.getWidth(), page.getHeight(), Bitmap.Config.ARGB_8888);
                    // 将临时位图洗白
                    bitmap.eraseColor(Color.WHITE);
                    // 渲染该 PDF 页面并写入临时位图
                    page.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);
                    // 把位图对象保存为图片文件
                    // BitmapUtil.saveImage(imgPath, bitmap);
                    page.close();
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return pathList;
    }


}